#include <iostream>
using std::cout;
using std::cin;
using std::endl;
//普通函数出口
// double add(int val) {
//     return val;
// }
// double add(double val) {
//     return val;
// }
//模板函数出口
template <class T>
double add(T val) {
    return val;
}
template <class T, class ...Args>
double add(T t1, Args ...args) {

    return t1 + add(args...);
}

void test() {
    cout << add(1, 1, 1, 1, 1, 1, 1, 1, 1) << endl;
    cout << add(1.1, 1, 1.1, 1, 1, 1.1, 1, 1, 1) << endl;
    cout << add(1, 1, 1, 1, 1, 1, 1, 1, 1) << endl;
    cout << add(1.1, 1, 1.1, 1, 1, 1.1, 1.1, 1, 1.1) << endl;
}
int main() {
    test();
    return 0;
}